#pragma once
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
////以后要改顺序表使用的数据的类型的时候改这
//typedef int SLDataType;
////数组大小
//#define N 10
//
////静态顺序表设计（固定大小）
//struct SeqList
//{
//	/*顺序表的有效数据在数组中必须是连续存放的*/
//	SLDataType _a[N];
//	SLDataType size;//记录存了多少个有效数据
//};



typedef int SLDataType;


//动态态顺序表设计（大小可变）
typedef struct SeqList
{
	/*顺序表的有效数据在数组中必须是连续存放的*/
	SLDataType* _a;
	int size;//记录存了多少个有效数据
	int capicity;//数组大小//容量
}SL, SeqList;



//初始化
void SeqListInit(SL* ps);
//销毁
void SeqListDestory(SL* ps);
//检测空间是否满了满了扩容
void SeqListCheckCapicity(SL* ps);
//尾插
void SeqListPushBack(SL* ps, SLDataType	x);
void SeqListPrintf(SL* ps);
//尾删
void SeqListPopBack(SL* ps);
//头插
void SeqListPushFront(SL* ps, SLDataType x);
//头删
void SeqListPopFront(SL* ps);
//任意位置插入
void SqeListInsert(SL* ps, int pos, SLDataType x);//pos要插入的位置
//任意位置删除
void SeqListErase(SL* ps, int pos);
//查询
int SeqListFind(SL* ps, SLDataType x);
//排序
void SeqListSort(SL* ps);
//二分查找
int SeqListBinaryFind(SL* ps, SLDataType x);